Task Constrained Learning